{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "39d21a91-2c31-48de-9172-43a66ee5354a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.metrics import mean_squared_error\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "568c6b83-d575-4baa-a384-43e5ce081844",
   "metadata": {},
   "outputs": [],
   "source": [
    "data= pd.read_csv(\"boston.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "f050c372-b14e-4d64-9e53-4a3a7229c1b0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CRIM</th>\n",
       "      <th>ZN</th>\n",
       "      <th>INDUS</th>\n",
       "      <th>CHAS</th>\n",
       "      <th>NOX</th>\n",
       "      <th>RM</th>\n",
       "      <th>AGE</th>\n",
       "      <th>DIS</th>\n",
       "      <th>RAD</th>\n",
       "      <th>TAX</th>\n",
       "      <th>PIRATIO</th>\n",
       "      <th>B</th>\n",
       "      <th>LSTAT</th>\n",
       "      <th>MEDV</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.00632</td>\n",
       "      <td>18.0</td>\n",
       "      <td>2.31</td>\n",
       "      <td>0</td>\n",
       "      <td>0.538</td>\n",
       "      <td>6.575</td>\n",
       "      <td>65.2</td>\n",
       "      <td>4.0900</td>\n",
       "      <td>1</td>\n",
       "      <td>296</td>\n",
       "      <td>15.3</td>\n",
       "      <td>396.90</td>\n",
       "      <td>4.98</td>\n",
       "      <td>24.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.02731</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>6.421</td>\n",
       "      <td>78.9</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2</td>\n",
       "      <td>242</td>\n",
       "      <td>17.8</td>\n",
       "      <td>396.90</td>\n",
       "      <td>9.14</td>\n",
       "      <td>21.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.02729</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.07</td>\n",
       "      <td>0</td>\n",
       "      <td>0.469</td>\n",
       "      <td>7.185</td>\n",
       "      <td>61.1</td>\n",
       "      <td>4.9671</td>\n",
       "      <td>2</td>\n",
       "      <td>242</td>\n",
       "      <td>17.8</td>\n",
       "      <td>392.83</td>\n",
       "      <td>4.03</td>\n",
       "      <td>34.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.03237</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>6.998</td>\n",
       "      <td>45.8</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3</td>\n",
       "      <td>222</td>\n",
       "      <td>18.7</td>\n",
       "      <td>394.63</td>\n",
       "      <td>2.94</td>\n",
       "      <td>33.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.06905</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.18</td>\n",
       "      <td>0</td>\n",
       "      <td>0.458</td>\n",
       "      <td>7.147</td>\n",
       "      <td>54.2</td>\n",
       "      <td>6.0622</td>\n",
       "      <td>3</td>\n",
       "      <td>222</td>\n",
       "      <td>18.7</td>\n",
       "      <td>396.90</td>\n",
       "      <td>5.33</td>\n",
       "      <td>36.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      CRIM    ZN  INDUS  CHAS    NOX     RM   AGE     DIS  RAD  TAX  PIRATIO  \\\n",
       "0  0.00632  18.0   2.31     0  0.538  6.575  65.2  4.0900    1  296     15.3   \n",
       "1  0.02731   0.0   7.07     0  0.469  6.421  78.9  4.9671    2  242     17.8   \n",
       "2  0.02729   0.0   7.07     0  0.469  7.185  61.1  4.9671    2  242     17.8   \n",
       "3  0.03237   0.0   2.18     0  0.458  6.998  45.8  6.0622    3  222     18.7   \n",
       "4  0.06905   0.0   2.18     0  0.458  7.147  54.2  6.0622    3  222     18.7   \n",
       "\n",
       "        B  LSTAT  MEDV  \n",
       "0  396.90   4.98  24.0  \n",
       "1  396.90   9.14  21.6  \n",
       "2  392.83   4.03  34.7  \n",
       "3  394.63   2.94  33.4  \n",
       "4  396.90   5.33  36.2  "
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "90a15cf2-fbf5-4003-b44b-723503082033",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 506 entries, 0 to 505\n",
      "Data columns (total 14 columns):\n",
      " #   Column   Non-Null Count  Dtype  \n",
      "---  ------   --------------  -----  \n",
      " 0   CRIM     506 non-null    float64\n",
      " 1   ZN       506 non-null    float64\n",
      " 2   INDUS    506 non-null    float64\n",
      " 3   CHAS     506 non-null    int64  \n",
      " 4   NOX      506 non-null    float64\n",
      " 5   RM       506 non-null    float64\n",
      " 6   AGE      506 non-null    float64\n",
      " 7   DIS      506 non-null    float64\n",
      " 8   RAD      506 non-null    int64  \n",
      " 9   TAX      506 non-null    int64  \n",
      " 10  PIRATIO  506 non-null    float64\n",
      " 11  B        506 non-null    float64\n",
      " 12  LSTAT    506 non-null    float64\n",
      " 13  MEDV     506 non-null    float64\n",
      "dtypes: float64(11), int64(3)\n",
      "memory usage: 55.5 KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "900fdfa3-a6cb-464b-a297-1d0237123aff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LSTAT     -0.737663\n",
       "PIRATIO   -0.507787\n",
       "INDUS     -0.483725\n",
       "TAX       -0.468536\n",
       "NOX       -0.427321\n",
       "CRIM      -0.388305\n",
       "RAD       -0.381626\n",
       "AGE       -0.376955\n",
       "CHAS       0.175260\n",
       "DIS        0.249929\n",
       "B          0.333461\n",
       "ZN         0.360445\n",
       "RM         0.695360\n",
       "MEDV       1.000000\n",
       "Name: MEDV, dtype: float64"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.corr()['MEDV'].sort_values()\n",
    "# 总要的一步值转换"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "1bb4b8ca-896d-48c7-a3f1-face7936ee89",
   "metadata": {},
   "outputs": [],
   "source": [
    "# x ,r = data[data.columns.delete(-1)], data['MEDV']\n",
    "x ,r = data[['RM','INDUS','TAX']], data['MEDV']\n",
    "x_train, x_test, r_train, r_test = train_test_split(x, r, test_size=0.2, random_state=888)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "22350359-1088-4de2-a07c-bfe6cab5d23c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RM    float64\n",
      "dtype: object\n",
      "------\n",
      "412    17.9\n",
      "242    22.2\n",
      "496    19.7\n",
      "14     18.2\n",
      "147    14.6\n",
      "       ... \n",
      "115    18.3\n",
      "150    21.5\n",
      "239    23.3\n",
      "493    21.8\n",
      "410    15.0\n",
      "Name: MEDV, Length: 404, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "# print(x_train.shape,r_train.shape)\n",
    "# print(x_test.shape,r_test.shape)\n",
    "# print(x_train.dtypes)\n",
    "\n",
    "# print(\"------\")\n",
    "# print(r_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "e53d2d57-8599-491d-ad1e-1950c6bbb998",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SCORE:0.6213\n",
      "RMSE:5.4440\n"
     ]
    }
   ],
   "source": [
    "linear_model = LinearRegression()\n",
    "linear_model.fit(x_train, r_train)\n",
    "coef = linear_model.coef_#回归系数\n",
    "line_pre = linear_model.predict(x_test)\n",
    "print('SCORE:{:.4f}'.format(linear_model.score(x_test, r_test)))\n",
    "print('RMSE:{:.4f}'.format(np.sqrt(mean_squared_error(r_test, line_pre))))\n",
    "# coef\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "5632c811-2cc3-42e6-b7ec-977ace28c50c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x1000 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize = (8,10))\n",
    "ax1 = fig.add_subplot(4,1,1)\n",
    "ax1.scatter(x_test['TAX'], r_test, c='blue', alpha=0.6)\n",
    "ax1.scatter(x_test['TAX'], linear_model.predict(x_test), c='red', alpha=0.3)\n",
    "ax1.set_title('TAX')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dd447a57-87b5-44fc-9588-bd57e5ba3b38",
   "metadata": {},
   "outputs": [],
   "source": [
    "# No\t属性\t数据类型\t字段描述x\n",
    "# 1\tCRIM\tFloat\t城镇人均犯罪率\n",
    "# 2\tZN\tFloat\t占地面积超过2.5万平方英尺的住宅用地比例\n",
    "# 3\tINDUS\tFloat\t城镇非零售业务地区的比例\n",
    "# 4\tCHAS\tInteger\t查尔斯河虚拟变量 (= 1 如果土地在河边；否则是0)\n",
    "# 5\tNOX\tFloat\t一氧化氮浓度（每1000万份）\n",
    "# 6\tRM\tFloat\t平均每居民房数\n",
    "# 7\tAGE\tFloat\t在1940年之前建成的所有者占用单位的比例\n",
    "# 8\tDIS\tFloat\t与五个波士顿就业中心的加权距离\n",
    "# 9\tRAD\tInteger\t辐射状公路的可达性指数\n",
    "# 10\tTAX\tFloat\t每10,000美元的全额物业税率\n",
    "# 11\tPTRATIO\tFloat\t城镇师生比例\n",
    "# 12\tB\tFloat\t1000（Bk - 0.63）^ 2其中Bk是城镇黑人的比例\n",
    "# 13\tLSTAT\tFloat\t人口中地位较低人群的百分数\n",
    "# 14\tMEDV\tFloat\t（目标变量/类别属性）以1000美元计算的自有住房的中位数\r",
    "859"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
